package top.infopub.mgr.mkt.dao;


import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import top.infopub.dto.mkt.BidBondRecycleDto;
import top.infopub.generic.GenericDao;
import top.infopub.model.mkt.BidBondRecycle;

import java.math.BigDecimal;


/** 保证金回收表(MKT_BID_BOND_RECYCLE) **/
@Repository
public interface BidBondRecycleDao extends GenericDao<BidBondRecycle, String> {
    /**
     * 根据procode查询保证金回收详情-新增
     * @param proCode
     * @return
     */
    BidBondRecycleDto queryDetailByProCode(@Param("proCode") String proCode);

    /**
     * 根据Id查询保证金回收详情-编辑
     * @param id
     * @return
     */
    BidBondRecycleDto queryDetailById(@Param("id") String id);

    /**
     * 根据bondApplyId统计已回收的保证金金额
     * @param bondApplyId
     * @return
     */
    BigDecimal sumDepoColltAmt(@Param("bondApplyId") String bondApplyId);

    /**
     * 新增-非必填字段可为空
     * @param bidBondRecycle
     */
    void insertBySeletive(BidBondRecycle bidBondRecycle);

    /**
     * 更新-只更新填写的字段
     * @param bidBondRecycle
     */
    void updateBySeletive(BidBondRecycle bidBondRecycle);

    /**
     * 查询项目营销经理所属公司Id
     * @param proCode 项目编码
     * @return
     */
    String queryOrgIdByProAddBy(@Param("proCode") String proCode);

    /**
     * 校验当前登录人员是否指定公司下的财务人员
     * @param groupId 财务组id，固定值：C204D2560C541727E053020011AC38D3
     * @param orgId 项目所属公司Id
     * @param id 当前登录人员Id
     * @return 大于0表示属于，等于0表示不属于
     */
    int checkIsCwFlag(@Param("groupId") String groupId,
                      @Param("orgId") String orgId,
                      @Param("id") String id);
}
